using Abp.Domain.Entities.Auditing;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using Abp.Domain.Entities;
using System.ComponentModel.DataAnnotations.Schema;
using Yozeev.UserManagerment.Users;

namespace Yozeev.BusinessLogic
{
    /// <summary>
    /// 验票记录管理
    /// </summary>
    public class TicketDetailHistory: ByBranchEntity<Guid>
    {
        /// <summary>
        /// 票种标识
        /// </summary>
        public Guid TicketId { get; set; }
        //[ForeignKey("TicketId")]
        //public virtual Ticket Ticket { get; set; }
        /// <summary>
        /// 设备标识
        /// </summary>
        public Guid DeviceId { get; set; }
        [ForeignKey("DeviceId")]
        public virtual Device Device { get; set; }
        /// <summary>
        /// 设备名称
        /// </summary>
        public string DeviceName { get; set; }
        /// <summary>
        /// 票据标识
        /// </summary>
        public Guid TicketDetailId { get; set; }
        [ForeignKey("TicketDetailId")]
        public virtual TicketDetail TicketDetail { get; set; }
        /// <summary>
        /// 票码
        /// </summary>
        public string TicketNo { get; set; }
        /// <summary>
        /// 游客标识
        /// </summary>
        public Guid CustomerId { get; set; }
        //[ForeignKey("CustomerId")]
        //public virtual Customer Customer { get; set; }
        /// <summary>
        /// 验证信息
        /// </summary>
        public string VisitValue { get; set; }
        /// <summary>
        /// 验证类型
        /// </summary>
        public string ValidationType { get; set; }
        /// <summary>
        /// 票型名称
        /// </summary>
        public string TicketName { get; set; }
        /// <summary>
        /// 验票结果代码
        /// </summary>
        public CheckStatusEnum StatusCode { get; set; }
        /// <summary>
        /// 验票结果
        /// </summary>
        public string StatusText { get; set; }
        /// <summary>
        /// 检票日期
        /// </summary>
        public DateTime CheckDate { get; set; }
        /// <summary>
        /// 年份
        /// </summary>
        public int Year { get; set; }
        /// <summary>
        /// 月份
        /// </summary>
        public int Month { get; set; }
        /// <summary>
        /// 天
        /// </summary>
        public int Day { get; set; }
        /// <summary>
        /// 时间
        /// </summary>
        public int Hour { get; set; }
        /// <summary>
        /// 分钟
        /// </summary>
        public int Minute { get; set; }
        /// <summary>
        /// 年的第几周
        /// </summary>
        public int YearWeek { get; set; }
        /// <summary>
        /// 周的第几天
        /// </summary>
        public int WeekDay { get; set; }
        /// <summary>
        /// 检票时间
        /// </summary>
        public DateTime CheckTime { get; set; }
        /// <summary>
        /// 检票员ID
        /// </summary>
        public long? CheckerId { get; set; }
        [ForeignKey("CheckerId")]
        public virtual User Checker { get; set; }
        /// <summary>
        /// 验票次数
        /// </summary>
        public long CheckCount { get; set; }
    }
}
